package com.xhj.mybatis.type;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * ByteTypeHandler
 *
 * @author XJks
 * @description Byte 类型处理器，将 Byte 类型参数设置到 PreparedStatement 中，从数据库结果集中获取 Byte 类型结果。
 */
public class ByteTypeHandler extends BaseTypeHandler<Byte> {

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, Byte parameter, JdbcType jdbcType) throws SQLException {
        ps.setByte(i, parameter);
    }

    @Override
    public Byte getNullableResult(ResultSet rs, String columnName) throws SQLException {
        byte result = rs.getByte(columnName);
        return result == 0 && rs.wasNull() ? null : result;
    }

    @Override
    public Byte getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        byte result = rs.getByte(columnIndex);
        return result == 0 && rs.wasNull() ? null : result;
    }
}
